1. Field of the Invention
The present invention relates to a computer system, and deals more particularly; with a method, system, and computer program product for selectively replacing cached content (including, but not limited to, dynamically generated Web pages which have been cached) to provide a higher level of service to particular users or groups of users.
2. Description of the Related Art
Techniques a well known for caching static content of files, Web pages, and so forth in order to improve the speed and efficiency of information retrieval, and various efforts are underway to determine suitable caching techniques for dynamically-generated content. For example, when a user in an Internet environment requests delivery of a statically d Web page, the page may be initially retrieved from a remote application server and then cached (i.e. stored) in a data store of the application server, and/or in a store of an edge server or proxy server that is located more closely to the requesting user. (In some cases, the page may also be cached in a data store that is locally accessible to the requester""s computing device. This type of local cache is not pertinent to the present invention, and will not be discussed further herein.) Subsequent requests by this user for the same page may be intercepted by a caching system which attempts to retrieve the previously page from the data store. When the page can be retrieved from the cache of an intermediate server, the An overhead of the round trip to the remote server is avoided, thereby improving the system performance and reducing the response time to the user. On the other hand, if the page is not available in the cache of the intermediate system, then it may be available from the cache of the application server. In this latter case, while the length of the network round-trip is not reduced, the system overhead of recreating the page content can be avoided, and the requested content can be returned to the user more quickly as well.
While efforts are ongoing to optimize the usage of caching in Web environments, the focus of these efforts is primarily directed toward determining when cached content should be invalidated and a more current version of the content should therefore be created or fetched. As the popularity of distributed computing (and use of the Internet and Web, in particular) continues to grow, more and more types of personalized services are being offered to users. As one example many Web shopping sites store user profile information, including the user""s name, address, shipping preferences, credit card information, and perhaps the items which this user most often likes to purchase. Each time the user returns to this Web site, a personalized page (which welcomes the user by name, for example) is typically presented. The page may also ask if the user wishes to go directly to his pre-stored list of favorite items. Or, page content may be customized based upon a classification or group (hereinafter referred to as a xe2x80x9cgroupxe2x80x9d, for ease of reference) into which the user falls (such as pages which are displayed in one manner to xe2x80x9cmembersxe2x80x9d of some service or subscription, and in another manner to other users.) As another example, some Web services provide page content which is tailored to specific types of end-user devices. If one user requests a Web page from a full-function desktop machine, the page may be delivered with rich media content including graphics and video clips, sound files, animated icons, and so forth. If the same page is requested from a user who is using a limited-function computing device such as a cellular phone or personal digital assistant (PDA), then the same page may be filtered or transcoded prior to delivery to the user, where these processes suppress certain content (such as the sound, video, and animation files) and may reduce the size of the remaining content. As a further example, other criteria such as the type and/or speed of network connection in use by the end-user may be considered in order to provide tailored page content using these same types of filtering and transcoding processes.
As usage of pages that are tailored for particular users, particular target devices, particular connection types and speeds, and other similar criteria continues to grow, the number of pages that are cachable is growing rapidly. Many of these pages may be the result of complex, computationally expensive processes at the application server. Furthermore, the pages may also be based on information that the application server must retrieve from other machines, such as by invoking a legacy host application or accessing a relational database, which significantly increases the amount of processing overhead and the time required to generate the page content. The problem of xe2x80x9cthrashingxe2x80x9d, as cached pages are replaced to make room for other newer pages, only to then discover that the replaced pages are now needed again, may be exhibited in caching systems (in a similar manner to the thrashing that may occur in a poorly-tuned memory page replacement system). Because of the added time and expense required for recreating page content for pages that cannot be retrieved from the cache, the advantages to be realized by a well-tuned cache replacement policy will become increasingly important, and may serve to distinguish among providers in the ever-more-competitive distributed computing marketplace.
Accordingly, there is a need for improved techniques for replacing cached page content in a distributed computing environment.
An object of the present invention is to provide an improved technique for replacing cached page content in a distributed computing environment.
It is another object of the present invention to provide this technique to reduce the response time and system overhead required for delivering dynamically-generated Web page content to requesters.
Another object of the present invention is to provide this technique based on an identification of the user whose page is being considered for replacement.
Still another object of the present invention is to provide this technique based on an identification of a group to which a user whose page is being considered for replacement belongs.
Yet another object of the present invention is to provide a cache replacement technique that may be used by service providers to provide enhanced services to particular users and/or groups of users.
A further object of the present invention is to provide a technique that may be used by service providers to justify service-based additional charges for particular users and/or groups of users.
Other objects and advantages of the present invention will be set forth in part in the description and in the drawings which follow and, in part, will be obvious from the description or may be learned by practice of the invention.
To achieve the foregoing objects, and in accordance with the purpose of the invention as broadly described herein, in a first aspect the present invention provides a computer program product, a system, and a method for selectively replacing cached content. In this aspect, the technique comprises: searching a cache to determine whether a cached entry exists having a lower quality of service than an entry to be cached; and overwriting the existing cached entry with the entry to be cached, when the search successfully locates the existing cached entry. The technique may further comprise discarding the entry to be cached when the search does not successfully locate the existing cached entry.
A first quality of service is preferably associated with a first client or client group for which the cached entry was cached, and a second quality of service is preferably associated with a second client or client group for which the entry to be cached was created. In this case, the search compares the first quality of service and the second quality of service. The first quality of service is preferably stored as an attribute of the cached entry, and the second quality of service is preferably an attribute of the entry to be cached.
In another aspect, the present invention provide a computer program product, system, and method for providing improved delivery of cached content to clients in a computing environment. This technique comprises: receiving a request for content from a client; determining whether a cached version of the requested content exists in a cache store which can be used for responding to the received request, and returning the requested content to the client if so; and generating the requested content, and returning the generated content to the client and attempting to cache the generated content in the cache store for future use otherwise. Attempting to cache the generated content further comprises: searching the cache store to determine whether a cached entry exists having a lower quality of service level than the quality of service level of the generated content; overwriting the existing cached entry with the entry to be cached, when the search successfully locates the existing cached entry; and not overwriting the existing cached entry otherwise.
Values of the quality of service levels are preferably determined by a service provider, based upon fees paid by clients to the service provider. Overwriting the existing cached entry preferably further comprises writing the quality of service level of the generated content into the cache store.
In these aspects, the cached entry and the entry to be cached, as well as the requested content and the generated content, are preferably Web pages.
In another aspect, the present invention provides a method of doing business, comprising the steps of providing one or more enhanced quality of service levels to customers of a service provider; charging a fee for the enhanced quality of service levels; and providing selective replacement of cached content for subscribers who pay the charged fee. Providing the selective replacement further comprises the steps of searching a cache to determine whether a cached entry exists having a lower quality of service than an entry to be cached; and overwriting the existing cached entry with the entry to be cached, when the search successfully locates the existing cached entry.